在Docker容器 | 您所在的位置:网站首页 › kubectl 查看日志 › 在Docker容器 |
希望你能帮忙。我尝试在Docker容器中启用审计日志记录,因此如果任何人kubectl exec到Docker容器并运行任何命令,那么这些命令将被记录,我们可以在kubectl logs中查看它们,并使用fluentd进行捕获。向容器的/etc/profile添加以下行的选项适用于root,但不适用于non-root用户,因为/proc/1/fd/1仅由root用户拥有和可写,不幸的是,更改所有权或权限不是一个选项。 trap 'echo "$USER":"$BASH_COMMAND" >> /proc/1/fd/1' DEBUG到目前为止,已尝试以下方法: 一个可行的选择是将容器作为non-root运行,但遗憾的是,这不是一个选择仅更改权限/所有权的选项不会更改权限/所有权此外,将mesg y添加到/etc/profile以允许访问root用户也不起作用,因为在执行su - non-root时,权限被拒绝(mesg: cannot open /dev/pts/2: Permission denied)-无法更改权限添加一个特殊文件并尝试从那里重定向日志的选项也不起作用,权限仍然被拒绝。例如:mkfifo -m 666 /tmp/logpipe #create the special file trap 'echo "$USER":"$BASH_COMMAND" /tmp/logpipe > /proc/1/fd/1' DEBUG # in /etc/profile更改为trap 'echo "$USER":"$BASH_COMMAND"' DEBUG也不起作用,因为在Docker的情况下,日志需要转到/proc/1/fd/1如何在Docker容器中启用命令行审计日志记录,或者如何解决以root用户身份运行的容器中non-root的/proc/1/fd/1权限问题?任何想法都非常感谢。 |
CopyRight 2018-2019 实验室设备网 版权所有 |